Micron Document
🎖️GitЯра🎖️

Commit e67ebb7a0d6a1fd0fd4f878ba9dba62a89557d97


Parents : 6ffb320
Author : James Rich <2199651+jamesarich@users.noreply.github.com>
Signature : Signature validation error
Date : 2026-05-20T17:42:31-07:00
Committer : GitHub <noreply@github.com>
Date : 2026-05-20T19:42:31-05:00

feat: enable WAL connection pool for parallel reads (#5372)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Changes
Diff

diff --git a/core/database/src/androidMain/kotlin/org/meshtastic/core/database/DatabaseBuilder.kt b/core/database/src/androidMain/kotlin/org/meshtastic/core/database/DatabaseBuilder.kt
index cf72f8066a..84e00ca696 100644
--- a/core/database/src/androidMain/kotlin/org/meshtastic/core/database/DatabaseBuilder.kt
+++ b/core/database/src/androidMain/kotlin/org/meshtastic/core/database/DatabaseBuilder.kt
@@ -32,10 +32,8 @@ import org.meshtastic.core.database.MeshtasticDatabase.Companion.configureCommon
/** Returns a [RoomDatabase.Builder] configured for Android with the given [dbName]. */
actual fun getDatabaseBuilder(dbName: String): RoomDatabase.Builder<MeshtasticDatabase> {
- val app = ContextServices.app
- val dbFile = app.getDatabasePath(dbName)
+ val dbFile = ContextServices.app.getDatabasePath(dbName)
return Room.databaseBuilder<MeshtasticDatabase>(
- context = app.applicationContext,
name = dbFile.absolutePath,
factory = { MeshtasticDatabaseConstructor.initialize() },
)
@@ -44,10 +42,7 @@ actual fun getDatabaseBuilder(dbName: String): RoomDatabase.Builder<MeshtasticDa
/** Returns a [RoomDatabase.Builder] configured for an in-memory Android database. */
actual fun getInMemoryDatabaseBuilder(): RoomDatabase.Builder<MeshtasticDatabase> =
- Room.inMemoryDatabaseBuilder<MeshtasticDatabase>(
- context = ContextServices.app.applicationContext,
- factory = { MeshtasticDatabaseConstructor.initialize() },
- )
+ Room.inMemoryDatabaseBuilder<MeshtasticDatabase>(factory = { MeshtasticDatabaseConstructor.initialize() })
.configureCommon()
/** Returns the Android directory where database files are stored. */

diff --git a/core/database/src/commonMain/kotlin/org/meshtastic/core/database/MeshtasticDatabase.kt b/core/database/src/commonMain/kotlin/org/meshtastic/core/database/MeshtasticDatabase.kt
index d329d184cc..b46d3b360a 100644
--- a/core/database/src/commonMain/kotlin/org/meshtastic/core/database/MeshtasticDatabase.kt
+++ b/core/database/src/commonMain/kotlin/org/meshtastic/core/database/MeshtasticDatabase.kt
@@ -120,7 +120,9 @@ abstract class MeshtasticDatabase : RoomDatabase() {
companion object {
/** Configures a [RoomDatabase.Builder] with standard settings for this project. */
fun <T : RoomDatabase> RoomDatabase.Builder<T>.configureCommon(): RoomDatabase.Builder<T> =
- this.fallbackToDestructiveMigration(dropAllTables = false).setQueryCoroutineContext(ioDispatcher)
+ this.fallbackToDestructiveMigration(dropAllTables = false)
+ .setMultipleConnectionPool(maxNumOfReaders = 4, maxNumOfWriters = 1)
+ .setQueryCoroutineContext(ioDispatcher)
}
}

Served by rngit 1.5.4 - Generated in 0.04s